C++禁用和监控Windows更新 您所在的位置:网站首页 musnotification 作用 C++禁用和监控Windows更新

C++禁用和监控Windows更新

#C++禁用和监控Windows更新| 来源: 网络整理| 查看: 265

一、Windows更新原理

参考链接:docs.microsoft.com/en-us/windo…

windows更新分为两类:1、当前版本内的小迭代更新  2、跨大版本的更新 image.png

1.1、 整体框架

image.png

1.2、升级流程图

image.png image.png image.png image.png

1.3、升级相关的一些重要组件

image.png

1.4、升级包括哪些

image.png

二、更新关键信息收集 2.1、关于组策略中的一些设置

docs.microsoft.com/en-us/windo… image.png docs.microsoft.com/en-us/windo… image.png

2.2、关于自动更新设备自动重启的设置

docs.microsoft.com/en-us/windo… image.png

2.3、重置windows更新

docs.microsoft.com/en-us/windo… image.png

2.4、本地部署WSUS管理客户端的升级

docs.microsoft.com/en-us/windo… docs.microsoft.com/zh-cn/secur… image.png

2.5、其他信息

support.microsoft.com/en-us/help/…   win10快速启动无法安装更新 docs.microsoft.com/en-us/windo…   windows更新故障排查

三、更新禁用方法整理 3.1、服务–禁用并立即停止windows更新相关服务

分析方法:

sc query state= all>c:\sc.txt 导出所有的服务名与显示名称的关系;注册表查询更新相关的调用服务,在sc.txt中查找对应的显示名称;使用windows服务管理器查找显示名称对应的服务描述。

明确与windows更新相关的服务名与描述:

TrustedInstaller(Windows Modules Installer):调用C:\WINDOWS\servicing\TrustedInstaller.exe -s -TrustedInstaller(启用 Windows 更新和可选组件的安装、修改和移除。如果此服务被禁用,则此计算机的 Windows 更新的安装或卸载可能会失败。) wuauserv(Windows Update):调用C:\WINDOWS\system32\svchost.exe -k netsvcs -p -s wuauserv(启用检测、下载和安装 Windows 和其他程序的更新。如果此服务被禁用,这台计算机的用户将无法使用 Windows 更新或其自动更新功能, 并且这些程序将无法使用 Windows 更新代理(WUA) API。) UsoSvc(Update Orchestrator Service):调用C:\WINDOWS\system32\svchost.exe -k netsvcs -p -s -UsoSvc(管理 Windows 更新。停止后你的设备将不能下载和安装最新的更新。) BITS(Background Intelligent Transfer Service):调用C:\WINDOWS\system32\svchost.exe -k netsvcs -p -s -BITS(使用空闲网络带宽在后台传送文件。如果该服务被禁用,则依赖于 BITS 的任何应用程序(如 Windows 更新或 MSN Explorer)将无法自动下载程序和其他信息。) WaaSMedicSvc(Windows Update Medic Service):调用C:\WINDOWS\system32\svchost.exe -k wusvcs -p -s -WaaSMedicSvc(启用Windows更新组件的修复和保护。)

禁用方法:

修改注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 下对应的服务项Start值为4(需要TrustedInstaller权限) [Start取值:0 – boot(由启动引导程序加载的设备驱动);1 – system(在核心初始化过程中启动的设备驱动);2 – 自动(每次计算机重新启动时,甚至没有人登录计算机时,都能自动启动的服务);2(同时DelayedAutostart=1) – delayed-auto(自动延时启动);3 – 手动(必须手动启动的服务。如果没有指定“start=”,这就默认值);4 – 禁用(不能启动的服务);] 3.2、组策略 – 禁用windows更新相关组策略

描述:

关闭windows更新策略 image.png 关闭“更新并关机”的电源选项(重启才能生效。且更新并重启选项不受影响) image.png 禁用方法: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU的子项(子项不存在时表示未配置) NoAutoUpdate:1-禁用自动更新 0-启用自动更新; NoAUShutdownOption:1-启用 0-禁止 组策略的数据通过本地Registry.pol文件再回写到注册表的,所以需要改变组策略需要通过IGroupPolicyObject进行修改(查看Registry.pol的工具官网下载链接) 3.3、计划任务 – 禁用windows更新相关计划任务

描述:

WindowsUpdate下任务Scheduled Start:多触发器触发操作 – C:\WINDOWS\system32\sc.exe start wuauserv(wuauserv已被禁用的情况下该计划任务会失效) WindowsUpdate下任务Automatic App Update:多触发器触发操作 – 自定义句柄(描述:自动更新用户的Windows应用商店应用程序)(计划任务InstallService下存在相同调用的任务,暂未发现与windows更新相关) WindowsUpdate下任务sih:每隔20小时触发操作 – %systemroot%\system32\sihclient.exe (sihclient.exe – SIH client 用于检测和修复与Windows自动更新、Microsoft软件相关的重要系统组件。暂未发现与windows更新相关) WindowsUpdate下任务sihboot:系统启动时触发操作 – %systemroot%\system32\sihclient.exe /boot (看参数与引导相关。暂未发现与windows更新相关) WindowsUpdate下任务sihpostreboot:自定义触发器触发操作 – %systemroot%\system32\sihclient.exe /PostReboot (看参数与重启相关。暂未发现与windows更新相关) UpdateOrchestrator下任务UpdateAssistant、UpdateAssistantAllUsersRun、UpdateAssistantCalendarRun、UpdateAssistantWakeupRun(网上有资料提及,但找了一些不同版本的windows操作系统都未曾发现这些计划任务) UpdateOrchestrator下任务MusUx_UpdateInterval:手动触发操作 – %systemroot%\system32\MusNotification.exe  Display(windows通知显示信息。非windows更新核心功能) UpdateOrchestrator下任务USO_Broker_Display:自定义触发器触发操作 – %systemroot%\system32\MusNotification.exe  Display(windows通知显示信息。非windows更新核心功能) UpdateOrchestrator下任务USO_UxBroker:多触发器触发操作 – %systemroot%\system32\MusNotification.exe(在更新安装后通知系统重启。非windows更新核心功能) UpdateOrchestrator下任务Reboot:手动触发操作 – %systemroot%\system32\MusNotification.exe  ReadyToReboot(windows通知将要重启。非windows更新核心功能) UpdateOrchestrator下任务Reboot_AC:禁用状态,手动触发操作 – %systemroot%\system32\MusNotification.exe  /RunOnAC RebootDialog(windows通知重启。非windows更新核心功能) UpdateOrchestrator下任务Reboot_Battery:禁用状态,手动触发操作 – %systemroot%\system32\MusNotification.exe  /RunOnBattery RebootDialog(windows通知重启。非windows更新核心功能) UpdateOrchestrator下任务Maintenance Install:禁用状态无触发器,操作 – %systemroot%\system32\usoclient.exe  StartInstall(安装更新。虽然是禁用状态,但与windows更新相关) UpdateOrchestrator下任务Schedule Scan:多触发器触发操作 – %systemroot%\system32\usoclient.exe  StartScan(更新扫描。与windows更新相关) UpdateOrchestrator下任务Schedule Scan Static Task:多触发器触发操作 – %systemroot%\system32\usoclient.exe  StartScan(更新扫描。与windows更新相关) UpdateOrchestrator下任务UpdateModelTask:自定义触发器触发操作 – %systemroot%\system32\usoclient.exe  StartModelUpdates(开启更新模块。与windows更新相关) 参考链接:www.idkrtm.com/windows-upd…(Windows Update Commands – USOClient, Powershell, WUAUCLT )

禁用方法:

注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks 下遍历所有子键中子项Actions值与usoclient.exe相匹配的子键进行修改 3.4、文件 – windows更新相关文件(实测清理文件无作用)

清单:

%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"--文件的作用不清楚,微软官方说重置windows更新时会删除这类文件。 %systemroot%\SoftwareDistribution\DataStore--存储Windows Update的补丁列表文件,文件被windows某些服务占用,删除前需要停止服务,微软官方说重置windows更新时需要将文件夹重命名。 %systemroot%\system32\catroot2--CatRoot2 文件夹中包含了编录数据库文件,运行Windows Update时,catroot2文件夹存储Windows Update软件包的签名,并有助于其安装。微软官方说重置windows更新时需要将文件夹重命名。 %systemroot%\SoftwareDistribution\Download--windows更新下载的文件存放处,微软官方说重置windows更新时需要将文件夹重命名。 %systemroot%\Logs\WindowsUpdate--windows更新安装的历史日志。 四、C++禁用和监控Windows更新

前面说了这么多,其实就是从多维度分析更新相关的东西,从而在C++中通过禁用服务、禁用注册表、禁用组策略的方式达成禁用更新的目的;同时借助微软提供的com接口也可以为接管更新做一些事情

最后的最后附上Github代码临摹链接,访问不了的自己找飞机场



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有